home *** CD-ROM | disk | FTP | other *** search
-
- unit Prt;
- interface
- uses objects;
- const
- Lpt1= 0; Lpt2= 1;
- Lpt3= 2; lf = #10;
- cr = #13; pTimeOut= $01;
- pIOError= $08; pNoPaper= $20;
- pNotBusy= $80;
- pTestAll= pTimeOut + pIOError + pNoPaper;
- function WriteChar(const APort : word; s : char): boolean;
- function Ready(const APort : word): boolean;
- function Status(const APort : word): byte;
- procedure InitPrinter(const APort : word);
- implementation
- procedure InitPrinter(const APort : word); assembler;
- asm
- mov ah, 1
- mov bx, APort
- int 17h
- end;
- function Status(const APort : word): byte; assembler;
- asm
- mov ah, 2 { Service 2 - Printer Status }
- mov dx, APort { Printer Port }
- int 17h { ROM Printer Services }
- mov al, ah { Set function value }
- end;
- function Ready(const APort : word): boolean;
- begin
- Ready := Status(APort) and pTestAll = $00;
- end;
- function WriteChar(const APort : word; s : char): boolean;
- begin
- if Ready(APort) then
- asm
- mov ah, 0 { Printer Service - Write Char }
- mov al, s { Char to write}
- mov dx, APort { Printer Port }
- int 17h { ROM Printer Services }
- mov al, 0 { Set procedure to false }
- and ah, 1 { Check for Error }
- jnz @End{ Jump to end if error }
- mov al, 1 { Set procedure to true}
- @End:
- end;
- end;
-
- end.